package com.gtw.observer.java;

import java.util.Observable;
import java.util.Observer;

/**
 * 对于被观察者,java.util提供了Observable类,
 */
public class Publisher extends Observable {

    private String magazineName;

    public String getMagazineName() {
        return magazineName;
    }

    @Override
    public synchronized void addObserver(Observer o) {
        super.addObserver(o);
    }

    public void publish(String magazineName) {
        this.magazineName = magazineName;
        setChanged();
        /**
         * 此方法唤醒观察者
         * 传入this是将当前被监测对象放入观察者的监测列表中,这样观察者可以观察不同对象,
         * 即同一个观察者其实是可以注册到不同的被观察者上面的
         */
        notifyObservers(this);
    }
}
